home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PPESCR17.ZIP / PPE-SCR.DOC < prev    next >
Text File  |  1994-11-01  |  41KB  |  998 lines

  1. ; *****************************************************************
  2. ; *                                                               *
  3. ; *                   PPE-Script  V 1.70 (11-01-94)               *
  4. ; *                                                               *
  5. ; *                Written in PPL 3.0 for PCBoard 15.2            *
  6. ; *                                                               *
  7. ; *                    Designed By:  Gary Meeker                  *
  8. ; *                                                               *
  9. ; *                    Began development: 06-23-93                *
  10. ; *                                                               *
  11. ; *****************************************************************
  12.  
  13. PPE-Script is a control file driven PPE for use a LOGON/LOGOFF/NEWASK script
  14. or for any of the Script Questionnaires.      It could also be attached as a
  15. command or possibly any other place you can use a .PPE file. (let us know if
  16. you come up with a different useful place to run it from.)
  17.  
  18. When used as a LOGON/LOGOFF/NEWASK questionnaire, you should copy PPE-SCR.PPE
  19. to LOGON.PPE/LOGOFF.PPE/NEWASK.PPE as it is not possible to have a command
  20. line argument to specify the Configuration file to be used. When no command
  21. line argument is present then the path\name of the .PPE is used with .CNF
  22. as the file extension. A Configuration file is mandatory and you must have
  23. one for each script you want to run (but not sub-scripts). Below is an
  24. example of the program used as the New Reg Quest. having been renamed to
  25. NEWASK.PPE and NEWASK.CNF resides in the same directory as the PPE.
  26.  
  27.                                 File Locations
  28.                       NewUser/Logon/Logoff Questionnaires
  29.  
  30.    Name/Loc of New Reg Questionnaire : C:\PCB\PPE\NEWASK.PPE
  31.    Name/Loc of Answers to New Reg.   : C:\PCB\MAIN\NEWREG
  32.  
  33.    Name/Loc of Logon  Script Quest.  : C:\PCB\PPE\LOGON
  34.    Name/Loc of Logon  Script Answers :
  35.  
  36.    Name/Loc of Logoff Script Quest.  : C:\PCB\PPE\LOGOFF
  37.    Name/Loc of Logoff Script Answers :
  38.  
  39. NOTE: You must also set the following to YES or it will not work!:
  40.  
  41.                              Configuration Options
  42.                                 System Control
  43.  
  44.    Use NEWASK+Standard Questions   : Y
  45.  
  46.  
  47.                            Config File Format
  48.                            ------------------
  49.  
  50. There are 16 lines in the configuration file (see example file).
  51.  
  52.  1: Sysop Name
  53.  
  54.     This is the information shown as registration name.
  55.  
  56.  2: Board Name
  57.  
  58.     This is the information shown as registration board and should be entered
  59.     the same as it appears on line 94 of your PCBOARD.DAT file.
  60.  
  61.  3: Registration Number (or blank)
  62.  
  63.     If registered, place your number here to remove the delay on
  64.     unregistered  versions.
  65.  
  66.  4: Welcome Screen to be displayed (Filename)
  67.  
  68.     The Drive:\Path\FileName of the file to be displayed prior to the User
  69.     being asked if they wish to answer the script.
  70.  
  71.  5: Max Attempts; Min Sec Level; Max Sec Level; Refused Level ;Exp Level;
  72.     Exp Days; Adjustment to Total Files; Adjustment to Total Bytes;
  73.     Adjustment to Daily Download Bytes; Adjustment to Time for Today;
  74.     Conference List;Expired Conference List
  75.  
  76.     This line contains 12 parts:
  77.  
  78.     Max Attempts: The number of times the user will be allowed to fail to
  79.     answer a question. If left blank the default will be 3.
  80.  
  81.     Min Sec level, Max Sec Level: If the Users level is outside this range
  82.     they will be shown the text on line 8 and the script will be halted.
  83.  
  84.     Refused Level: This is the level given to the User if they choose not
  85.     to answer the script. Leave blank if you do not wish to change the level.
  86.  
  87.     Exp Level: This is the exp level given to the User if they choose not
  88.     to answer the script. Leave blank if you do not wish to change the level.
  89.  
  90.     Exp Days: This is the number of days till expiration given to the User
  91.     if they choose not to answer the script. Leave blank if you do not wish
  92.     to change the level.
  93.  
  94.     Adjustment to Total Files: This is an adjustment to the Total files
  95.     the User has downloaded if they choose not to answer the script and
  96.     may be a negative value. If set to 'X' the value will be zeroed.
  97.  
  98.     Adjustment to Total Bytes: This is an adjustment to the Total bytes
  99.     the User has downloaded if they choose not to answer the script and
  100.     may be a negative value. If set to 'X' the value will be zeroed.
  101.  
  102.     Adjustment to Daily Download Bytes: This is an adjustment to the number
  103.     of bytes the user has download today if they choose not to answer the
  104.     script and may be a negative value. If set to 'X' the value will be zeroed.
  105.  
  106.     Adjustment to Time for Today: This is an adjustment to Today's time limit
  107.     if they choose not to answer the script and may be a negative value.
  108.  
  109.     Conference List: This is a list of conferences to register the User in
  110.     and may include ranges. (ie. 1-10,15,17,20-39)
  111.  
  112.     Expired Conference List:  This is a list of conferences to register the
  113.     User in when they expire and may include ranges. (ie. 1-10,15,17,20-39)
  114.  
  115.  6: Age Source; Sex Source; Position; SexAnswers
  116.  
  117.     This line contains 4 parts:
  118.  
  119.     Age/Sex Source: 0 = None (Have to ask Question to get it)
  120.                     1 = User Comment Field
  121.                     2 = Sysop Comment Field
  122.                     3 = Verify PSA Field
  123.                     4 = Notes 1 PSA Field
  124.                     5 = Notes 2 PSA Field
  125.                     6 = Notes 3 PSA Field
  126.                     7 = Notes 4 PSA Field
  127.                     8 = Notes 5 PSA Field
  128.                     9 = Addr 1 PSA Field
  129.                    10 = Addr 2 PSA Field
  130.                    11 = Addr 3 PSA Field
  131.                    12 = Addr 4 PSA Field
  132.                    13 = Addr 5 PSA Field
  133.                    14 = Addr 5 PSA Field
  134.  
  135.           Position: Character within string at which Sex is stored
  136.                     (The Date of Birth must be at position 1 to obtain
  137.                      the age, so no position is needed.)
  138.  
  139.         SexAnswers: The Answers allowed for Sex, if left blank the default
  140.                     of 'MF' is used. This allows for multi-language support.
  141.  
  142.  7: Log changes to CALLERS file; Write Questions to Answer file; Write "Q: "
  143.     & "A: " to Answer File; Write Skipped questions to the Answer file;
  144.     Question Color; Answer Color; Jump Backwards
  145.  
  146.     This line contains 7 parts:
  147.  
  148.     Log changes to CALLERS file: 1 for Yes, 0 for No. If set to YES then
  149.          changes to Security Level or Conference Registrations will be
  150.          logged to the CALLERx file.
  151.  
  152.     Write Questions to Answer file: 1 for Yes, 0 for No. If set to YES the
  153.          questions will be written to the Answer file.
  154.  
  155.     Write "Q: " & "A: " to Answer File:  1 for Yes, 0 for No. If set to YES
  156.          the questions and answers will be preceded by this text.
  157.  
  158.     Write Skipped questions to the Answer file: 1 for Yes, 0 for No. If set
  159.          to YES then Questions (if Write Questions to Answer file is Yes) and
  160.          an answer of '[N/A]' will be written to the Answer file to maintain
  161.          a consistent length for every questionnaire (especially useful if
  162.          not writing the questions to the file).
  163.  
  164.     Question Color: The Color to use for the questions. If left blank the
  165.          default color will be used. The value may be given in decimal
  166.          or or using PCBoards #Xnn codes.
  167.  
  168.       Answer Color: The Color to use for the answers. If left blank the
  169.          default color will be used. The value may be given in decimal
  170.          or or using PCBoards #Xnn codes.
  171.  
  172.     Jump Backwards: 1 for Yes, 0 for No. If set to Yes then the search for
  173.          labels will begin at the start of the file allowing jumping backwards,
  174.          otherwise the search will start at the next line (allowing the same
  175.          label name to be reused if you want).
  176.  
  177.  8: Use 'Min='; Use '==--' display; Issue NewLine; 'Min=' Color;
  178.     '=' Guide Color; '-' Guide Color
  179.  
  180.     This line contains 6 parts:
  181.  
  182.     Use 'Min=': 1 for Yes, 0 for No. If set to YES the minimum size will
  183.         be displayed to the user.
  184.  
  185.     Use '==--' display: 1 for Yes, 0 for No. If set to YES the guide will
  186.         be displayed showing minimum size as '=' and '-' as field length.
  187.  
  188.     Issue NewLine: 1 for Yes, 0 for No. If set to YES then a NEWLINE will
  189.         be issued after each question (an extra blank line like PCBoard).
  190.  
  191.     'Min=' Color: The Color to use for the 'Min=' text. If left blank the
  192.          default color will be used.
  193.  
  194.     '=' Guide Color: The Color to use for the '=' guide. If left blank the
  195.  
  196.     '-' Guide Color: The Color to use for the '-' guide. If left blank the
  197.          default color will be used.
  198.  
  199.  9: Text to display if not allowed to answer Script due to security level
  200.     (%Filename allowed)
  201.  
  202.     If the security range of the User is outside the range defined in line
  203.     4, then this text will be displayed. You may use PCBoard's %filespec to
  204.     display a file here.
  205.  
  206. 10: Prompt to ask for continuing
  207.  
  208.     This is the prompt to display to the User asking if they want to answer
  209.     the script. If left blank, they will be forced to answer the script.
  210.  
  211. 11: Text to display after completing Script (%Filename allowed)
  212.  
  213.     This text will be displayed to the User after completing the script.
  214.     You may use PCBoard's %filespec to display a file here.
  215.  
  216. 12: Path for Script Files
  217.  
  218.     This is the Drive:\Path\ spec for the location of the Script files.
  219.     If left blank then the path of the PPE will be used.
  220.  
  221. 13: Beginning Script File
  222.  
  223.     This is the FILENAME.EXT of the starting script.  (no path)
  224.  
  225. 14: Answer file (if not installed as NEWASK/LOGON/LOGOFF or a Script)
  226.  
  227.     This is the FILENAME.EXT of the answer file. If this is used
  228.     as a NEWASK/LOGON/LOGOFF or a Script then this line should be blank
  229.     and the default file will be used as setup under PCBSETUP.
  230.  
  231. 15: Message file
  232.  
  233.     This is the FILENAME.EXT of the message file. If this is not blank
  234.     then the file will be opened and the Questions and Answers will be
  235.     written to this file as well as the normal answer file to allow sending
  236.     the file as a message to the Sysop. The file will be deleted at the
  237.     end of the script.
  238.  
  239. 16: Caller ID Information
  240.  
  241.     Search;Private;Outside;CallerIDLogFile;HexFormat
  242.  
  243.     This line contains 4 parts:
  244.  
  245.      1) Search Text:
  246.  
  247.         This is the text to search for in order to find the phone number
  248.         Supra: "NMBR = "
  249.         ZyXEL: "NUMBER: "
  250.  
  251.         You may also directly place the numeric value of the position of
  252.         the number in this field.
  253.  
  254.         Note: do not include the quotes ("). They are shown only for
  255.               clarity. To include a space at the end of the search string
  256.               as shown, use ALT-255 in place of a space.
  257.  
  258.      2) Private
  259.  
  260.         Private is the character that indicates a Private Number.
  261.           usually P (will default to P if left blank)
  262.  
  263.      3) Outside
  264.  
  265.         Outside is the character that indicates a Long Distance Number.
  266.           usually O (will default to O if left blank)
  267.  
  268.      4) Caller ID Log File
  269.  
  270.         This is the FILENAME.EXT of the Caller ID Log file. If this is not
  271.         blank it will be used to append the Caller ID data when using the
  272.         Caller ID Test command.
  273.  
  274.      5) HexFormat
  275.  
  276.         HexFormat is a flag to indicate the phone number is in Hex and
  277.           needs to be converted (such as in Canada)
  278.  
  279.                               Script.Dat Format
  280.                               -----------------
  281.  
  282. The SCRIPT.DAT control file is the key to the operation of PPE-Script and
  283. contains as many lines as you desire. There are 20 basic types of lines in
  284. the format as described below. The first character of the line defines the
  285. type of line. The first 19 types are single line entries. If the User is to
  286. be given a new level after answering the script then you must use at least
  287. on of the 'Register User' entries (probably as the last line).   Branching
  288. from one script file to another is possible up to five levels deep and the
  289. script will be returned to when the file branched to is done.
  290.  
  291. 1)   Comment Logging
  292.  
  293.      Line used in .DAT file:
  294.  
  295.      >Comment Text
  296.  
  297.      The Text following the '>' will be written to the Answer file but not
  298.      displayed to the User.
  299.  
  300. 2)   Comment Logging & Display
  301.  
  302.      Line used in .DAT file:
  303.  
  304.      &Comment Text
  305.  
  306.      The Text following the '&' will be written to the Answer file and
  307.      displayed to the User.
  308.  
  309. 3)   Comment Display
  310.  
  311.      Line used in .DAT file:
  312.  
  313.      #Comment Text
  314.  
  315.      The Text following the '#' will be displayed to the User but not
  316.      written to the Answer file.
  317.  
  318. 4)   Caller File Logging
  319.  
  320.      Line used in .DAT file:
  321.  
  322.      @Log Text
  323.  
  324.      The Text following the '@' will be written to the Caller Log file
  325.      but not written to the Answer file or displayed to the User.
  326.  
  327. 5)   File Display
  328.  
  329.      Line used in .DAT file:
  330.  
  331.      %Drive:\Path\FileName.ext
  332.  
  333.      The file is displayed via DISPFILE so if you do not include an extension
  334.      PCBoard will display a Security Level/Graphics/Language appropriately.
  335.  
  336.  
  337. 6)   Register User
  338.  
  339.      Line used in .DAT file: (contains 11 fields)
  340.  
  341.      R; ;50;40;365; ; ; ; ;Conference List;Expired Conference List
  342.        | |  |  |   | | | |     |               ^--- as described below
  343.        | |  |  |   | | | |     ^--- as described below
  344.        | |  |  |   | | | ^--- Adjustment to Time for Today
  345.        | |  |  |   | | ^--- Adjustment to Daily Download Bytes ('X' to Zero)
  346.        | |  |  |   | ^--- Adjustment to Total Bytes Downloaded ('X' to Zero)
  347.        | |  |  |   ^--- Adjustment to Total Files Downloaded ('X' to Zero)
  348.        | |  |  ^--- Days till expired to assign
  349.        | |  ^--- Expired Level to assign
  350.        | ^--- Security Level to assign
  351.        ^--- Register if:
  352.               Blank: Always
  353.                   1: Last answer was TRUE (YES, Male, or within range)
  354.                   2: Last answer was FALSE (NO, Female or NOT within range)
  355.                   3: No failed answers (User refused to answer a question)
  356.                   4: Last Answer was TRUE & No Failed Answers
  357.                   5: Last Answer was FALSE & No Failed Answers
  358.  
  359.      The Conference List entries are the conferences to register the
  360.      User in and may include ranges. (ie. 1-10,15,17,20-39)
  361.  
  362. 7)   Indirect Register User
  363.  
  364.      Line used in .DAT file: (contains 3 (or 12) fields)
  365.  
  366.      I; ;filename.ext;(default information, 9 fields)
  367.        |         ^--- File to read for the above registration information
  368.        ^--- Register if:
  369.           128,Blank: Always
  370.               129,1: Last answer was TRUE (YES, Male, or within range)
  371.               130,2: Last answer was FALSE (NO, Female or NOT within range)
  372.               131,3: No failed answers (User refused to answer a question)
  373.  
  374.      In Indirect registration, the filename specified is read to obtain the
  375.      registration information.  The information takes the same format as in
  376.      Register User starting with the 'Security Level to assign' field. You
  377.      may also include default information after the filename to be used in
  378.      the event that the line read is blank.
  379.  
  380.      When using 128-131 then PPE-Script will read the line number from
  381.      the file based on the last numeric answer. This is useful for menu
  382.      selections or errorlevels returned by external programs.
  383.  
  384. 8)   Message
  385.  
  386.      Line used in .DAT file: (contains 9 fields)
  387.  
  388.      M;0;SYSOP; ;NEW USER;R;0;0;0;FileName
  389.        |   |   |    |     | | | |    ^--- Filename to use for the message text
  390.        |   |   |    |     | | | ^--- TRUE if message should be echoed
  391.        |   |   |    |     | | ^--- TRUE if return receipt desired
  392.        |   |   |    |     | ^--- Pack out date (0 for no pack out date)
  393.        |   |   |    |     ^--- Security (N or R; N is the default)
  394.        |   |   |    ^--- Subject
  395.        |   |   ^--- From user (empty string defaults to current caller)
  396.        |   ^--- To user (empty string defaults to current caller)
  397.        ^--- Conference Number
  398.  
  399.      Allows sending message to User or to Sysop (or anyone else). If the
  400.      filename is blank and you specified a message file in the .CNF file,
  401.      you can send the Users answers to the Sysop.
  402.  
  403. 9)   Join Conference
  404.  
  405.      Line used in .DAT file:
  406.  
  407.      J;12
  408.         ^--- The conference to place the User in.
  409.  
  410.      This will place the User in a specific conference (via LASTIN).
  411.  
  412. 10)  Branch to New Script (will return to this Script)
  413.  
  414.      Line used in .DAT file: (contains 5 fields)
  415.  
  416.      B;4;5;9;NEXT.DAT;DENIED.DAT
  417.        | | |     |          ^--- Script to run if Test is FALSE
  418.        | | |     |                (NO, Female or NOT within range)
  419.        | | |     ^--- Script to run if Test is TRUE
  420.        | | |           (YES, Male, or within range)
  421.        | | ^--- Maximum (if type 2, 4, 5 or 6 else ignored)
  422.        | ^--- Minimum (if type 2, 4, 5 or 6 else ignored)
  423.        ^--- Type of Test:
  424.         Blank: Always true
  425.             1: Last Question
  426.             2: Age Range (use Minimum/Maximum)
  427.             3: Sex
  428.             4: Security Level (use Minimum/Maximum)
  429.             5: Times On the System (use Minimum/Maximum)
  430.             6: Last Question from Numeric Question (use Minimum/Maximum)
  431.  
  432. 11)   CALL another .PPE
  433.  
  434.      Line used in .DAT file: (contains 5 fields)
  435.  
  436.      C;4;5;9;NEXT.PPE;Command Line
  437.        | | |     |        ^--- Command line for program
  438.        | | |     ^--- PPE to call if Test is TRUE
  439.        | | |           (YES, Male, or within range)
  440.        | | ^--- Maximum (if type 2, 4, 5 or 6 else ignored)
  441.        | ^--- Minimum (if type 2, 4, 5 or 6 else ignored)
  442.        ^--- Type of Test:
  443.         Blank: Always true
  444.        1, 129: Last Question
  445.        2, 130: Age Range (use Minimum/Maximum)
  446.        3, 131: Sex
  447.        4, 132: Security Level (use Minimum/Maximum)
  448.        5, 133: Times On the System (use Minimum/Maximum)
  449.        6, 134: Last Question from Numeric Question (use Minimum/Maximum)
  450.  
  451.        Note: Two values are shown for each of the selections above. The first
  452.              set (1 - 6), indicates the Call is made if the test is True.
  453.              the second (129 - 134) indicates the Call is made if the test
  454.              is False (or in the case of Sex if the User is Female). ie:
  455.  
  456.              C;132;5;9;NEXT.PPE;Command Line
  457.                            |        ^--- Command line for program
  458.                            ^--- PPE to call if Test is FALSE
  459.                                  (NO, Female, or NOT within range)
  460.  
  461.              The PPE will be called if the Users security level is less
  462.              than 5 or greater than 9, just the opposite of the first
  463.              example given.
  464.  
  465. 12)  SHELL to external program
  466.  
  467.      Line used in .DAT file: (contains 5 fields)
  468.  
  469.      S;4;5;9;NEXT.EXE;Command Line
  470.        | | |     |        ^--- Command line for program
  471.        | | |     ^--- Program to execute if Test is TRUE
  472.        | | |           (YES, Male, or within range)
  473.        | | ^--- Maximum (if type 2, 4, 5 or 6 else ignored)
  474.        | ^--- Minimum (if type 2, 4, 5 or 6 else ignored)
  475.        ^--- Type of Test:
  476.         Blank: Always true
  477.        1, 129: Last Question
  478.        2, 130: Age Range (use Minimum/Maximum)
  479.        3, 131: Sex
  480.        4, 132: Security Level (use Minimum/Maximum)
  481.        5, 133: Times On the System (use Minimum/Maximum)
  482.        6, 134: Last Question from Numeric Question (use Minimum/Maximum)
  483.  
  484.        Note: Two values are shown for each of the selections above. The first
  485.              set (1 - 6), indicates the Shell is made if the test is True.
  486.              the second (129 - 134) indicates the Shell is made if the test
  487.              is False (or in the case of Sex if the User is Female).
  488.  
  489.      The full Drive:\Path of the .EXE will be required if it is not in
  490.      the current directory. Selling is not done via COMMAND.COM in order
  491.      to return the error code of the program executed.
  492.  
  493.      The error code returned by the program will be stuffed into the
  494.      Last Question Numeric Answer variable to be acted upon by further
  495.      Branch, Call & Shell commands.
  496.  
  497.      WRUSYS is executed before SHELLing and RDUSYS is executed after
  498.      return to PPE-Script allowing the executed program to modify
  499.      USERS.SYS or PCBOARD.SYS and have the changes accepted.
  500.  
  501. 13)  Write to Users File
  502.  
  503.      Line used in .DAT file: (contains 5 fields)
  504.  
  505.      W;2;01;20;NEXT.DAT;DENIED.DAT
  506.        | | |     |          ^--- Script to run if Test is FALSE
  507.        | | |     |                (NO, Female or NOT within range)
  508.        | | |     ^--- Script to run if Test is TRUE
  509.        | | |           (YES, Male, or within range)
  510.        | |  ^--- Number of characters to write
  511.        | ^--- Position to start writing
  512.        ^--- Write to:
  513.               Blank: Ignored
  514.                   1: User Comment Field
  515.                   2: Sysop Comment Field
  516.                   3: Verification Field
  517.                   4: Note(1) Field
  518.                   5: Note(2) Field
  519.                   6: Note(3) Field
  520.                   7: Note(4) Field
  521.                   8: Note(5) Field
  522.                   9: Addr(0) Field
  523.                  10: Addr(1) Field
  524.                  11: Addr(2) Field
  525.                  12: Addr(3) Field
  526.                  13: Addr(4) Field
  527.                  14: Addr(5) Field
  528.  
  529.      This is used to write the Last Answer into the Users record at the
  530.      selected field. Data already in the field will remain and only the
  531.      portion specified will be overwritten. This allows combining several
  532.      answers into a single field.
  533.  
  534.      NOTE: If you wish to write the result of a question that will branch
  535.            to another script or uses [SKIP], [STOP], etc. then you should
  536.            not use the fields in the question to perform the branching but
  537.            instead use the fields provided in the 'W' command itself.
  538.  
  539.      Example:
  540.  
  541.      ?Are you the SYSOP of a BBS? (y/N)
  542.      Y;1;;;N;;;[SKIP]
  543.      W;2;3;1;;
  544.  
  545.      In this case, if the User answers No, then nothing will be written
  546.      to the Users file because the 'W' command will be skipped. Only if
  547.      the User answers Yes will anything be written to the Users file.
  548.  
  549.      ?Are you the SYSOP of a BBS? (y/N)
  550.      Y;1;;;N;;;
  551.      W;2;3;1;;[SKIP]
  552.  
  553.      By moving the script data to the 'W' command line, the Users answer
  554.      will be written to the  Users file no matter what they  answer and
  555.      the script will then branch according to the last question (the 'W'
  556.      command does not change the result of the last answer in any way.)
  557.  
  558. 14)  Set Default Answer
  559.  
  560.      Line used in .DAT file: (contains 3 fields)
  561.  
  562.      D;2;01;20
  563.        | |  ^--- Number of characters to read
  564.        | ^--- Position to start reading
  565.        ^--- Read From:
  566.               Blank: Ignored
  567.                   1: User Comment Field
  568.                   2: Sysop Comment Field
  569.                   3: Verification Field
  570.                   4: Note(1) Field
  571.                   5: Note(2) Field
  572.                   6: Note(3) Field
  573.                   7: Note(4) Field
  574.                   8: Note(5) Field
  575.                   9: Addr(0) Field
  576.                  10: Addr(1) Field
  577.                  11: Addr(2) Field
  578.                  12: Addr(3) Field
  579.                  13: Addr(4) Field
  580.                  14: Addr(5) Field
  581.  
  582.      This is used to read a Default Answer from the Users record at the
  583.      selected field.
  584.  
  585.      D;2;3;1
  586.      ?Are you the SYSOP of a BBS? (y/n)
  587.      Y;1;;;;;;
  588.      W;2;3;1;;[SKIP]
  589.  
  590.      This will read the data from the Users file to be used as the default
  591.      to the question. This allows using PPE-Script to maintain data in the
  592.      Users file allowing the User to change previously set data.
  593.  
  594.      NOTE: Default Answers specified in the .DAT will be ignored when using
  595.            this feature (only on the question involved).
  596.  
  597. 15)  Test User Field
  598.  
  599.      Line used in .DAT file: (contains 4 fields)
  600.  
  601.      T;1;SPECIAL.LST;NEXT.DAT;DENIED.DAT
  602.        |        |        |          ^--- Script to run if Match not found
  603.        |        |        ^--- Script to run if Match is found
  604.        |        ^--- The list of words to check field for
  605.        ^--- Field to Test:
  606.               Blank: Ignored
  607.                   1: User Comment Field
  608.                   2: Sysop Comment Field
  609.                   3: Verification Field
  610.                   4: Note(1) Field
  611.                   5: Note(2) Field
  612.                   6: Note(3) Field
  613.                   7: Note(4) Field
  614.                   8: Note(5) Field
  615.                   9: Addr(0) Field
  616.                  10: Addr(1) Field
  617.                  11: Addr(2) Field
  618.                  12: Addr(3) Field
  619.                  13: Addr(4) Field
  620.                  14: Addr(5) Field
  621.                  15: User Name Field
  622.                  16: User Alias Field
  623.                  17: User Password Field
  624.                  18: User City/State Field
  625.                  19: User Bus/Data Phone
  626.                  20: User Home/Voice Phone
  627.  
  628. 16)  Stop Skipping Questions
  629.  
  630.      Line used in .DAT file:
  631.  
  632.      $
  633.  
  634.      The single character '$' is all that is needed. If a portion of the
  635.      .DAT file is being skipped, this will stop the skipping and the rest
  636.      of the .DAT file will continue processing again.
  637.  
  638. 17)  Label
  639.  
  640.      Line used in .DAT file:
  641.  
  642.      :LabelName
  643.  
  644.      This allows skipping a portion of the .DAT file, and stop at a
  645.      specific label. This will stop the skipping and the rest of the .DAT
  646.      file will continue processing again if the LabelName specified
  647.      matches the text issued in the special ScriptName
  648.  
  649.      Example:
  650.  
  651.      ?Are you the SYSOP of a BBS? (y/N)
  652.      Y;1;;;N;;;[SKIP]
  653.      ?BBS Software - Brand and version?
  654.      T;4;60;;;PCB.LST;;[NOT_PCB]
  655.      #So, you're running PCBoard you say.
  656.      :NOT_PCB
  657.      #Thanks for being a Sysop
  658.      $
  659.      #That's all!
  660.  
  661.      Answering No will skip to the '$' ignoring the label. Answering Yes
  662.      will result in asking the second question and the skipping the comment
  663.      if the answer does not match the data in the PCB.LST file.
  664.  
  665. 18)  Pause log file
  666.  
  667.      Line used in .DAT file:
  668.  
  669.      P;1
  670.        ^--- 0: Continue
  671.             1: Pause
  672.  
  673.      This allows asking questions that do not get written to the log file
  674.      (neither do the answers).
  675.  
  676. 19)  Caller ID Testing
  677.  
  678.      Line used in .DAT file: (contains 6 fields)
  679.  
  680.      !;0;ListFile;PrivScript;LDScript;YesScript;NoScript
  681.        |     |        |         |         |        ^--- Script to run if not in list
  682.        |     |        |         |         ^--- Script to run if in list
  683.        |     |        |         ^--- Script to run if Outside Area
  684.        |     |        ^--- Script to run if CID Blocked
  685.        |     ^--- List of phone numbers to check
  686.        ^---0: Log Caller ID if not in list
  687.            1: Log Caller ID if in list
  688.            2: Don't Log Caller ID at all
  689.  
  690.      This allows checking the Caller ID information (provided you have a
  691.      modem capable of supplying it to PCBoard)
  692.  
  693.      If a Valid Caller ID is found the LastAnswer will be TRUE, if not or
  694.      the call is Outside the Area or Blocked then LastAnswer will be FALSE.
  695.  
  696.      The List File could be a list of numbers to be blocked or a list of
  697.      numbers to be given special access. This list must contain numbers
  698.      formatted as AAA-EEE-NNNN to match the Caller ID information.
  699.  
  700.      This is expected to be followed by a Registration command line but
  701.      fell free to use it anyway you see fit.
  702.  
  703. 20)  Questions (requires a second line)
  704.  
  705.      The first Line starts with a '?' and any Text following the '?' is
  706.      the Question to ask.
  707.  
  708.      The Second Line controls the type of question and contain 6 parts:
  709.  
  710.      Part 1:  This  is  the  type  of input to accept.  The testing is done
  711.              character by character.   Control  and  drawing characters are
  712.              filtered out in any type.  The following types are accepted:
  713.  
  714.      Code Input Type        Validation      Characters Accepted
  715.      ---- ----------------  -----------     ---------------------------
  716.       T   Text              .LST file       Everything " " to "~" and 128 to 255
  717.       Tx  Controlled Text   .LST file       x = Control Type(s)
  718.                                             E = Everything ASCII " " to "~"
  719.                                             A = Alpha A-Z & a-z
  720.                                             N = Numeric 0-9
  721.                                             S = Space " "
  722.                                             M = Money 0-9, ".", "$"
  723.                                             . = Punctuation ".", ",", ";", ":"
  724.                                             P = Phone 0-9,-,+,(,),[,],Space
  725.                                             + = Sign "+", "-"
  726.                                             ^ = literal (next character)
  727.       P   Phone Numbers     Min Length      0-9,-,+,(,),[,]
  728.       S   Sex               Min Length      Single Character (M,F,Space)
  729.       D   Date              VALDATE         0-9,-,/
  730.       B   BirthDate         VALDATE         0-9,-,/
  731.       C   Credit Card       VALCC           0-9,SPACE,-
  732.       N   Numeric           Min/Max         0-9
  733.       Y   Yes/No            None            Single Character (Y or N)
  734.       A   Age               None            0-9
  735.       V   Verification      Min Length      ASCII
  736.  
  737.      Part 2: This is the MINIMUM length of an answer to accept.
  738.              On BirthDate Questions: Minimum Age
  739.              On Numeric Questions: Minimum Answer
  740.  
  741.      Part 3: This is the MAXIMUM length of the answer.  The overall maximum
  742.              length is set at 60 characters,  to  conform to PCBoard Script
  743.              questionnaires.  If you select a length greater  than  60,  it
  744.              will be set to 60.
  745.              On Yes/No, Sex, Date, Phone Number or Age Questions: Ignored
  746.              On BirthDate Questions: Maximum Age
  747.              On Numeric Questions: Maximum Answer
  748.  
  749.      Part 4: On Text or Numeric Questions: InputFlags
  750.              0001h = echo dots instead of user input
  751.              0002h = displays parenthesis to show input field width if
  752.                        ANSI enabled. When not selected or in NON-ANSI
  753.                        mode, parenthesis are placed around the '==--'
  754.                        display field on the line above.
  755.              0004h = displays parenthesis above current line if FIELDLEN
  756.                        used and ANSI not enabled, this is overridden when
  757.                        Use '==--' display is enabled to eliminate the
  758.                        duplicate effort.
  759.              0008h = force user input to upper case
  760.              0010h = allow semi-colons and spaces in addition to valid
  761.                        character set passed
  762.              0020h = erase the current line when user presses enter
  763.              0040h = send a line feed after user presses enter
  764.              0080h = send an extra line feed before prompt display
  765.              0100h = send an extra line feed after user presses enter
  766.              0200h = if user hits end of line, save the text at the end of
  767.                        the line for future use
  768.              0400h = don't clear field at first keypress regardless of ANSI
  769.              0800h = ?
  770.              1000h = allow high ascii characters, regardless of current valid
  771.                        character set, if disable high ascii filter set to yes
  772.              2000h = Automatically press enter after 10 seconds of no user input
  773.              4000h = Only allow international yes/no responses
  774.              Default = 0046h
  775.              On Date or BirthDate: If non-blank then No Answer is required
  776.              On Yes/No, Sex, Credit Card, Phone Number or Age Questions: Ignored
  777.  
  778.      Part 5: A default answer (if any)
  779.  
  780.      Part 6: On Text Questions: The .LST file to examine
  781.              On Birthdate Questions: The sex required to run the script
  782.              On Sex Questions: The answers allowed for Question
  783.              All other Questions: Ignored
  784.  
  785.      Part 7: On Text Questions: The Script to run if text in .LST file in answer
  786.              On Yes/No Questions: The Script to run if the answer is YES
  787.              On Birthdate Questions: The Script to run if within Age Limits
  788.              On Sex Questions: The Script to run if Male
  789.              On Numeric Questions: The Script to run if within Numeric Range
  790.              On Date, Phone Number or Credit Card Questions: Ignored
  791.              On Age Questions: The Script to run if Age matches BirthDate
  792.              On Verification Questions: Script to run if verification matches
  793.  
  794.      Part 8: On Text Questions: The Script to run if text in .LST file NOT in answer
  795.              On Yes/No Questions: The Script to run if the answer is NO
  796.              On Birthdate Questions: The Script to run if NOT within Age Limits
  797.              On Sex Questions: The Script to run if Female
  798.              On Numeric Questions: The Script to run if NOT within Numeric Range
  799.              On Date, Phone Number or Credit Card Questions: Ignored
  800.              On Age Questions: The Script to run if Age does not match BirthDate
  801.              On Verification Questions: Script to run if verification fails
  802.  
  803.  
  804.      Example Lines used in .DAT file:
  805.  
  806.  20a) Text
  807.  
  808.      ?What is your Computer system?
  809.      T;3;40
  810.      | |  ^--- Maximum Length (60 if blank)
  811.      | ^--- Minimum Length (0 if blank)
  812.      ^--- Type of input testing (None - any ASCII Character)
  813.  
  814.  20b) Text (restricted characters)
  815.  
  816.      ?What is your occupation?
  817.      TAS;5;40; ; ;JOBS.LST;HIRING.DAT;
  818.      |   |  | | |    |        |       ^--- The Script to run if a word
  819.      |   |  | | |    |        |              match is NOT found
  820.      |   |  | | |    |        ^--- The Script to run if a word match is found
  821.      |   |  | | |    ^--- The list of words to check answer for
  822.      |   |  | | ^--- No Default Answer
  823.      |   |  | ^--- Default(46h) input flags
  824.      |   |  ^--- Maximum Length (60 if blank)
  825.      |   ^--- Minimum Length (0 if blank)
  826.      ^--- Type of input testing (Alpha A-Z, a-z and SPACE only)
  827.  
  828.      ?What is the Disk Storage capacity on your System
  829.      TASN;2;20;004Eh;20 Megs
  830.      |    |  |   |     ^--- Default Answer
  831.      |    |  |   ^--- Default(46h) input flags + Force Uppercase
  832.      |    |  ^--- Maximum Length (60 if blank)
  833.      |    ^--- Minimum Length (0 if blank)
  834.      ^--- Type of input testing (Alpha A-Z, a-z, 0-9 and SPACE only)
  835.  
  836.  20c) Credit Card
  837.  
  838.      ?Enter Credit Card Number
  839.      C;1; ; ;
  840.      | | | | ^--- Default Answer
  841.      | | | ^--- N/A
  842.      | | ^--- N/A
  843.      | ^--- Minimum Length (0 if blank)
  844.      ^--- Type of input testing (Alpha A-Z, a-z and SPACE only)
  845.  
  846.  20d) Date
  847.  
  848.      ?Enter the date you started computing (mm/dd/yy)
  849.      D; ; ; ;
  850.      | | | | ^--- Default Answer
  851.      | | | ^--- If Non-Blank then No Answer required
  852.      | | ^--- N/A
  853.      | ^--- N/A
  854.      ^--- Type of input testing (Alpha A-Z, a-z and SPACE only)
  855.  
  856.  20e) BirthDate
  857.  
  858.      ?What is your birth date (mm/dd/yy)
  859.      B;21; ; ; ; ;ADULT.DAT;KID.DAT
  860.      | |  | | | |      |       ^--- Script to run if NOT within Age range
  861.      | |  | | | |      ^--- Script to run if within Age range
  862.      | |  | | | ^--- Sex required to run either Script
  863.      | |  | | ^--- Default Answer
  864.      | |  | ^--- If Non-Blank then No Answer required
  865.      | |  ^--- Maximum Age Limit (255 if blank)
  866.      | ^--- Minimum Age Limit (0 if blank)
  867.      ^--- Type of input testing
  868.  
  869.  20f) Numeric
  870.  
  871.      ?Enter a number from 1 to 9
  872.      N;1;9; ; ; ;SMART.DAT;STUPID.DAT
  873.      | | | | | |      |          ^--- Script to run if NOT within range
  874.      | | | | | |      ^--- Script to run if within range
  875.      | | | | | ^--- If Blank Answer must be in range, else anything allowed
  876.      | | | | ^--- No Default Answer
  877.      | | | ^--- N/A
  878.      | | ^--- Maximum
  879.      | ^--- Minimum
  880.      ^--- Type of input testing
  881.  
  882.  20g) Phone Numbers
  883.  
  884.      ?What is the number of your BBS
  885.      P;1; ; ;
  886.      | | | | ^--- Default Answer
  887.      | | | ^--- Default(46h) input flags
  888.      | | ^--- N/A
  889.      | ^--- Minimum Length (0 if blank)
  890.      ^--- Type of input testing
  891.  
  892.  20h) Yes/No
  893.  
  894.      ?Are you a Sysop
  895.      Y;1; ; ; ; ;SYSOP.DAT;USER.DAT
  896.      | | | | | |      |        ^--- Script to run if No
  897.      | | | | | |      ^--- Script to run if Yes
  898.      | | | | | ^--- Responses available (Blank = YESCHAR()+NOCHAR())
  899.      | | | | ^--- Default Answer
  900.      | | | ^--- N/A
  901.      | | ^--- N/A
  902.      | ^--- Minimum Length (0 if blank)
  903.      ^--- Type of input testing
  904.  
  905.  20i) Sex
  906.  
  907.      ?What is your gender (m/f)
  908.      S;1; ; ; ; ;MALE.DAT;FEMALE.DAT
  909.      | | | | | |     |          ^--- Script to run if Female
  910.      | | | | | |     ^--- Script to run if Male
  911.      | | | | | ^--- Responses available (Blank = Default from Config)
  912.      | | | | ^--- Default Answer
  913.      | | | ^--- Default(46h) input flags
  914.      | | ^--- N/A
  915.      | ^--- Minimum Length (0 if blank)
  916.      ^--- Type of input testing
  917.  
  918.  20j) Age
  919.  
  920.      ?What is your age
  921.      A;1; ; ; ; ;MATCHED.DAT;LIED.DAT
  922.      | | | | | |        |       ^--- Script to run if BirthDate age is different
  923.      | | | | | |        ^--- Script to run BirthDate age matches
  924.      | | | | | ^--- If Non-Blank then No Answer required
  925.      | | | | ^--- Default Answer
  926.      | | | ^--- N/A
  927.      | | ^--- N/A
  928.      | ^--- Minimum Length (0 if blank)
  929.      ^--- Type of input testing
  930.  
  931.  20k) Verification
  932.  
  933.      ?
  934.      V;1; ; ; ; ;MATCHED.DAT;LIED.DAT
  935.      | | | | | |        |       ^--- Script to run if verification fails
  936.      | | | | | |        ^--- Script to run if verification matches
  937.      | | | | | ^--- If Non-Blank then No Answer required
  938.      | | | | ^--- Default Answer
  939.      | | | ^--- Default(46h) input flags
  940.      | | ^--- Maximum Length (25 if blank)
  941.      | ^--- Minimum Length (0 if blank)
  942.      ^--- Type of input testing
  943.  
  944.      If Question is blank then PCBTEXT entry #707 is used.
  945.  
  946.    Special Script File Name Actions:
  947.    "[STOP]"    : Stop the current Script and return to previous level
  948.    "[END]"     : Stop the current Script and all previous levels
  949.    "[SKIP]"    : Skip any remaining Questions/Comments/DisplayFiles
  950.                  Write "N/A" as answers for any questions, write
  951.                  Questions if enabled  (can be stopped before the end of
  952.                  the file by a "$" Stop Skipping to allow skipping a section)
  953.                  All 'Branch to new script' and 'Register User' lines will
  954.                  also be skipped. Only the current level will be skipped. If
  955.                  the end of the script is reached and processing returns
  956.                  to a previous level, Skipping will stop. The example file
  957.                  NEWASK.DAT that I use on my BBS shows 3 examples of using
  958.                  [SKIP] to skip sections of the questionnaire.
  959.    "[SKIPALL]" : Same as SKIP but does not stop skipping when returning to a
  960.                  previous level, but can still be stopped by a '$' line.
  961.  
  962.    "[xxx]"     : Same as SKIP but will Stop Skipping only at the Label
  963.                  that matches the text between the '[' & ']'.
  964.                  (Note: xxx represents whatever text you wish to use,
  965.                  noting also that STOP, END, SKIP & SKIPALL are reserved.)
  966.                  Note: If Jump Backwards is to YES in .CNF file, then the
  967.                  search for the label will start at the beginning of the file.
  968.  
  969. When using a list file of matching words, the data listed on a line is
  970. checked for in the answer. If the data appears anywhere in the answer,
  971. then it is considered a match. If a line begins with an "*" then the
  972. remaining data on the line must exactly match the answer given to be
  973. considered a match. In all cases the match is case-insensitive.
  974.  
  975. I've only had one other suggestion as to features (which was just added
  976. into version 1.20), so either no one is using the program or it fits the
  977. needs without any changes. If there is something that should be added,
  978. please let me know. I am planning on writing an editor to create/modify
  979. the .DAT files, as I know they can get complicated.
  980.  
  981. This program is released as TRUSTWARE.  If you use it, I trust you to send
  982. a donation of $5.00 to me. You can call up and get the registration number
  983. to remove the delay at anytime whether you have sent a donation or not.
  984.  
  985. To register this program call:
  986.  
  987. SHARP Technical Support Line BBS (404) 962-1788  and use the REG command to
  988. obtain your registration number.   You need to sign on under your real name
  989. which MUST also be used on line 1 of the configuration file.  You will also
  990. be asked to give the name of your board which MUST be entered exactly as it
  991. will appear on line 2 your configuration file(s).
  992.  
  993. Send your $5.00 donation to:
  994.  
  995. Gary Meeker
  996. 725-C Old Norcross Road
  997. Lawrenceville, GA 30245
  998.